/*
  品牌管理所有接口模块

  不同请求方式:
  get 查
  POST 增
  PUT  改
  DELETE 删

  基于以上请求方式定义接口,称为restful风格的接口   很流行
*/

import request from '@/utils/request';
import type { getTrademarkListApiResponse, Putdatets } from '@/Api/product/model/trademark'

// 枚举类型
// 用来统一定义接口请求地址
enum Api {
  getTrademarkListUrl = "/admin/product/baseTrademark",
  SaveTrademark = '/admin/product/baseTrademark/save',
  DeleteTrademarkUrl = "/admin/product/baseTrademark/remove",
  putTrademarkUrl = "/admin/product/baseTrademark/update"
}

/*
  接口函数命尽量和普通功能函数区别,所以我们加上api或req等
  接口函数需不需要参数
    看接口文档,对应的接口需不需要请求参数
     如果两个或则两个以上参数会直接写,三个参数以上写成对象形式

    path参数 
      request.get(`/xxx/${page}/${limit}`)

*/

/**
 * 获取品牌分页列表
 * @param page   当前页码
 * @param limit   每条页数
 * @returns   Get
 */

export const getTrademarkListApi = (page: number, limit: number) => {
  // 必须return  外面调用接口函数才能得到返回值
  // 真实的返送请求地址,/admin/product/baseTradmark
  // path参数位于地址栏吗,直接写就好
  return request.get<any, getTrademarkListApiResponse>(`${Api.getTrademarkListUrl}/${page}/${limit}`);
  // return request({
  //   url: `${Api.getTrademarkListUrl}/${page}/${limit}`,
  //   method: "get",
  // });

}


/**
* 添加品牌
* @param tmName 品牌名称
* @param logoUrl 品牌logo
* @returns null
*/

export const saveTrademarkApi = (tmName: string, logoUrl: string) => {
  return request.post<any, null>(Api.SaveTrademark, {
    tmName,
    logoUrl,
  });
};

/**
* 删除品牌
* @param id 要删除品牌的id
* @returns null
*/

export const deleteTrademarkApi = (id: number) => {
  return request.delete<any, null>(`${Api.DeleteTrademarkUrl}/${id}`);
};

// {
//   "id": 0,
//   "logoUrl": "string",
//   "tmName": "string"
// }
/**
* 修改品牌
* @param tm 修改的品牌信息  是一个对象 {id:number,logoUrl:string,tmName:string}
* @returns null
*/

export const putTrademarkApi = (tm: Putdatets) => {
  console.log(tm);
  return request.put<any, null>(Api.putTrademarkUrl, tm);

};